Summer Program: Python Programming _ Day1 Quiz

Author

김보람

Published

July 24, 2023

lesson 1

Quiz

1

a='Jeonbuk National University' 
a[-10:]
'University'

2

a.lower()
'jeonbuk national university'

3

'A'.isupper()
True
'Aa'.isupper()
False
'aa'.isupper()
False
'aA'.isupper()
False
  • 문자열이 모두 대문자가 맞는지 확인

4

  1. ‘a’*2

  2. ‘a’*‘2’

  3. ‘a’+2

  4. ‘a’+‘2’

'a'*2
'aa'
'a'*'2'
TypeError: can't multiply sequence by non-int of type 'str'
'a'+2
TypeError: can only concatenate str (not "int") to str
'a'+'2'
'a2'

5

'제 이름은 {}입니다'.format('최규빈')
'제 이름은 최규빈입니다'
'제 이름은 {}이고 사는곳은 {}입니다.'.format('최규빈','전주')
'제 이름은 최규빈이고 사는곳은 전주입니다.'
'제 이름은 {}이고 사는곳은 {}입니다.'.format('전주','김보람')
'제 이름은 전주이고 사는곳은 김보람입니다.'
  • 뒤에 format을 순서에 맞춰서 써줘야 한다.
string = '전북대학교 학생엠티가 {}{}일-{}{}일 완주 곶감펜션에서 있다고 합니다. 자세한 일정 등은 다시 공지하겠습니다.' 
string.format(3,24,3,25)
'전북대학교 학생엠티가 3월24일-3월25일 완주 곶감펜션에서 있다고 합니다. 자세한 일정 등은 다시 공지하겠습니다.'

6

'abcdefg'.replace('g','u')
'abcdefu'
  • g를 u로 바꿔줌

7

'2023-03-22'.split('-')
['2023', '03', '22']

-을 기준으로 나누어줌

'2023.03.22'.split('.')
['2023', '03', '22']

8

'a' in 'abcd'
True
  • ‘a’라는 문자가 ’abcd’ 안에 있는지 확인해주는 함수
'b' in 'boram'
True
'c' in 'boram'
False

lesson 2

Quiz

1

a=[]
a
[]
len(a)
0

2

len(3.14)
TypeError: object of type 'float' has no len()
len([3.14]) 
1
len('3.14') 
4

3

[1]*1+[2]*2+[3]*2+[4]*4+[5]*5
[1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]

4

sum([1,0,1,0])
2
sum([True,False,True,False])
2

5

x = [80,60,80,90,55,85,95,100,35,70,75,65,95]
x
[80, 60, 80, 90, 55, 85, 95, 100, 35, 70, 75, 65, 95]
sum([xi >80 for xi in x])
5

6

['A','B','C','D','A','A','B','A','F','C','C','C','A']
['A', 'B', 'C', 'D', 'A', 'A', 'B', 'A', 'F', 'C', 'C', 'C', 'A']
a=['A','B','C','D','A','A','B','A','F','C','C','C','A']
a.count('A')
5
a.count('B')
2
lst = ['A','B','C','D','A','A','B','A','F','C','C','C','A']
sum([l <'C' for l in lst])
7

7

x=[1,2,1,5,6,2,4,7]
y=[3,2,4,1,2,5,6,7] 
[x[i]**2+y[i]**2 for i in range(8)]
[10, 8, 17, 26, 40, 29, 52, 98]

8

test_arr = 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSUGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XAt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/EnmZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbxNrRFi9wrf+M7Q== schacon@mylaptop.local'
sum([s.isupper() for s in test_arr ])
155

9

['a'*i for i in range(1,11)]
['a',
 'aa',
 'aaa',
 'aaaa',
 'aaaaa',
 'aaaaaa',
 'aaaaaaa',
 'aaaaaaaa',
 'aaaaaaaaa',
 'aaaaaaaaaa']

10

test_lst = [['g',1],['u',5],['e',2],['b',8],['i',2],['n',9]]
[i[0]*i[1] for i in test_lst]
['g', 'uuuuu', 'ee', 'bbbbbbbb', 'ii', 'nnnnnnnnn']

11

[1,2,2,3,3,3]
[1, 2, 2, 3, 3, 3]
a = []
for i in range(1,4):
    a = a + [i]*i
a
[1, 2, 2, 3, 3, 3]

12

lst = ['2022/09/21','2022/10/30','2022/12/25','2023/01/01','2023/01/31','2023/03/20']
[a.replace('/','-') for a in lst]
['2022-09-21',
 '2022-10-30',
 '2022-12-25',
 '2023-01-01',
 '2023-01-31',
 '2023-03-20']

13

a='2021. 01. 05.'
a
'2021. 01. 05.'
a.replace(' ','')
'2021.01.05.'

14

'-'.join(['2022','01','05'])
'2022-01-05'
'.'.join(['2022','01','05'])
'2022.01.05'
'/'.join(['2022','01','05'])
'2022/01/05'

15

block = ['■'] 
block*10
['■', '■', '■', '■', '■', '■', '■', '■', '■', '■']
'-'.join(block*10)
'■-■-■-■-■-■-■-■-■-■'

16

['2023', '03', '22']
['2023', '03', '22']
'-'.join(['2023', '03', '22'])
'2023-03-22'

17

a = ('202250926',)
len(a)
1
type(a)
tuple
b = ('boram',)
a + b
('202250926', 'boram')

18

lst = [['2021-43052', 'GuebinChoi', 5, 10, 20, 25],
       ['2019-12342', 'Heung-min Son', 10, 15, 30, 15],
       ['2018-32234', 'hynn', 7, 20, 30, 15],
       ['2022-42323', 'Minji', 8, 20, 20, 35],
       ['2023-55342', 'Hanni', 7, 20, 30, 35],
       ['2022-46624', 'Danielle', 3, 15, 30, 40],
       ['2022-11239', 'Haerin', 10, 20, 30, 40],
       ['2022-32114', 'Hyein', 10, 20, 20, 35]]
lst 
[['2021-43052', 'GuebinChoi', 5, 10, 20, 25],
 ['2019-12342', 'Heung-min Son', 10, 15, 30, 15],
 ['2018-32234', 'hynn', 7, 20, 30, 15],
 ['2022-42323', 'Minji', 8, 20, 20, 35],
 ['2023-55342', 'Hanni', 7, 20, 30, 35],
 ['2022-46624', 'Danielle', 3, 15, 30, 40],
 ['2022-11239', 'Haerin', 10, 20, 30, 40],
 ['2022-32114', 'Hyein', 10, 20, 20, 35]]
len(lst)
8

19

. 전북대학교 지침에 따라 출석점수가 7보다 작은 학생은 (즉 출석점수 < 7 일 경우) F학점을 부여하게 되어있다. 이 기준에 따르면 F를 받는 학생은 모두 몇명인가?

sum([a<7 for _,_,a, *rest in lst])
2

20

파이썬프로그래밍 수업의 경우 출석+레포트 < 21 일 경우 F학점을 부여한다고 한다. 이 기준에 따르면 F를 받는 학생은 모두 몇명인가?

sum([a+b<21 for _,_,a,b, *rest in lst])
2

21

리스트의 정렬순서를 [학번, 이름, …, 기말고사점수] 가 아니라 [이름, 학번, … , 기말고사점수] 와 같이 되도록 변경하는 코드를 작성하라.

[[name,studentid,*rest] for studentid, name, *rest in lst]
[['GuebinChoi', '2021-43052', 5, 10, 20, 25],
 ['Heung-min Son', '2019-12342', 10, 15, 30, 15],
 ['hynn', '2018-32234', 7, 20, 30, 15],
 ['Minji', '2022-42323', 8, 20, 20, 35],
 ['Hanni', '2023-55342', 7, 20, 30, 35],
 ['Danielle', '2022-46624', 3, 15, 30, 40],
 ['Haerin', '2022-11239', 10, 20, 30, 40],
 ['Hyein', '2022-32114', 10, 20, 20, 35]]

22

text = "국내뿐 아니라 해외 인기도 심상치 않다. 2023년 1월 18일 'Ditto'가 빌보드 핫 100에 96위로 진입했다. 이는 K-pop 역사상 데뷔후 최단 빌보드 Hot 100 차트 입성 기록이다. 다른 뮤지션들이 보통 데뷔 후 수년간 쌓아온 팬덤을 기반으로 빌보드에 입성한데 비해, 뉴진스의 기록은 이례적인 것으로 평가받고 있다. 또한 'OMG'가 빌보드 핫 100에 91위로 진입한 동시에 'Ditto'는 85위로 순위가 상승, 핫 100 주간차트에 두 곡을 올려놓았다. K-Pop 역사상 이 차트에 두 곡 이상을 진입시킨 아티스트는 방탄소년단과 블랙핑크가 유일하다. 'Ditto'는 1월 셋째주 기준, 빌보드뿐만 아니라 영국 오피셜 싱글 차트 '톱 100'에 2주 연속 진입하기도 했다."
aa=text.split('.')
aa
['국내뿐 아니라 해외 인기도 심상치 않다',
 " 2023년 1월 18일 'Ditto'가 빌보드 핫 100에 96위로 진입했다",
 ' 이는 K-pop 역사상 데뷔후 최단 빌보드 Hot 100 차트 입성 기록이다',
 ' 다른 뮤지션들이 보통 데뷔 후 수년간 쌓아온 팬덤을 기반으로 빌보드에 입성한데 비해, 뉴진스의 기록은 이례적인 것으로 평가받고 있다',
 " 또한 'OMG'가 빌보드 핫 100에 91위로 진입한 동시에 'Ditto'는 85위로 순위가 상승, 핫 100 주간차트에 두 곡을 올려놓았다",
 ' K-Pop 역사상 이 차트에 두 곡 이상을 진입시킨 아티스트는 방탄소년단과 블랙핑크가 유일하다',
 " 'Ditto'는 1월 셋째주 기준, 빌보드뿐만 아니라 영국 오피셜 싱글 차트 '톱 100'에 2주 연속 진입하기도 했다",
 '']
len(aa)
8
  • 그냥 ‘.’ 으로 구분해버리게 되면 맨 마지막 ““까지 길이를 세게 된다. 조심!
a=text.split('. ')
a
['국내뿐 아니라 해외 인기도 심상치 않다',
 "2023년 1월 18일 'Ditto'가 빌보드 핫 100에 96위로 진입했다",
 '이는 K-pop 역사상 데뷔후 최단 빌보드 Hot 100 차트 입성 기록이다',
 '다른 뮤지션들이 보통 데뷔 후 수년간 쌓아온 팬덤을 기반으로 빌보드에 입성한데 비해, 뉴진스의 기록은 이례적인 것으로 평가받고 있다',
 "또한 'OMG'가 빌보드 핫 100에 91위로 진입한 동시에 'Ditto'는 85위로 순위가 상승, 핫 100 주간차트에 두 곡을 올려놓았다",
 'K-Pop 역사상 이 차트에 두 곡 이상을 진입시킨 아티스트는 방탄소년단과 블랙핑크가 유일하다',
 "'Ditto'는 1월 셋째주 기준, 빌보드뿐만 아니라 영국 오피셜 싱글 차트 '톱 100'에 2주 연속 진입하기도 했다."]
len(a)
7

23

a=text.split(' ')
a
len(a)
90

24

['100' in s for s in a]
[False, True, True, False, True, False, True]
sum(['100' in s for s in a])
4

lesson 3

Quiz

1

test_arr = 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSUGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XAt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/EnmZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbxNrRFi9wrf+M7Q== schacon@mylaptop.local'
test_arr[::2]
'shraAABNa1cEAAIAAEkOpDrH1SrTpLG9jmBDUP+azHTWhIy5w8HJ9bUriz7lLV49F5VbpSgcaPvkd/TBWFRHoFRtqi1KXHZMiqVRsAwsMvlK7A3aJAnMQx+VW6/Im1uFjJpr8XpDjNyv/bretEm+WOPTI9PVLar2E6/lbg331KtIj2od1rTMVsxrF9r+7= cao@yatplcl'

2

test_arr[::-1]
'lacol.potpalym@nocahcs ==Q7M+frw9iFRrNxbsSVqMlTarQ10d1os2njkImtaKn1+3r3wg+b8li/Z68Ec2DryauLMVmPZ98IPTnPZO4WA+ZmnE/trewr0bP/wv6ybNYjvDNpyX88XrrpKJQjlFUuz1bmFIe/86wW0V3+5x9Q1McnsAoJoaF3tAX7/KVlSvFMdsdwQANsjR6V8qLicMsZAHpXhKn1XixqBtiRXF3oAH+RCFXWlByTM/JdOk7vbP3adc0gwSppPbkVQ5XFl9h4fVELElx7MzQivrFUhbj9WJ4HJ81we5Zy4Idh7WYTDHlzfan+lPGUSDWB/mojT9KGTLNpITmrbS71YHfrHDkpUOlkAEQAAAwIBAAAAE2cy1CazN3BAAAA asr-hss'

3

dct={'202212377': {'att': 65, 'rep': 45, 'mid': 0, 'fin': 10},
     '202212473': {'att': 95, 'rep': 30, 'mid': 60, 'fin': 10},
     '202212310': {'att': 65, 'rep': 85, 'mid': 15, 'fin': 20},
     '202212460': {'att': 55, 'rep': 35, 'mid': 35, 'fin': 5},
     '202212320': {'att': 80, 'rep': 60, 'mid': 55, 'fin': 70},
     '202212329': {'att': 75, 'rep': 40, 'mid': 75, 'fin': 85},
     '202212408': {'att': 65, 'rep': 70, 'mid': 60, 'fin': 75},
     '202212319': {'att': 60, 'rep': 25, 'mid': 20, 'fin': 35},
     '202212348': {'att': 95, 'rep': 55, 'mid': 65, 'fin': 90},
     '202212306': {'att': 90, 'rep': 25, 'mid': 95, 'fin': 50},
     '202212308': {'att': 55, 'rep': 45, 'mid': 75, 'fin': 30},
     '202212366': {'att': 95, 'rep': 60, 'mid': 25, 'fin': 55},
     '202212367': {'att': 95, 'rep': 35, 'mid': 0, 'fin': 25},
     '202212461': {'att': 50, 'rep': 55, 'mid': 90, 'fin': 45}}
[a for a  in dct]
['202212377',
 '202212473',
 '202212310',
 '202212460',
 '202212320',
 '202212329',
 '202212408',
 '202212319',
 '202212348',
 '202212306',
 '202212308',
 '202212366',
 '202212367',
 '202212461']

4()

[a for a,b in dct.items() if b['att']>70]
['202212473',
 '202212320',
 '202212329',
 '202212348',
 '202212306',
 '202212366',
 '202212367']

5

import requests
url = 'https://raw.githubusercontent.com/guebin/PP2023/main/posts/01_PythonBasic/Oxford-IIIT.txt'
txt = requests.get(url).content.decode()
fname= txt.split('\n')
fname[:5]
['Abyssinian_1.jpg',
 'Abyssinian_10.jpg',
 'Abyssinian_100.jpg',
 'Abyssinian_100.mat',
 'Abyssinian_101.jpg']

6()

def f(fname):
    return 'cat' if fname[0].isupper() else 'dog'
f('yorkshire_terrier_99.jpg')
'dog'
f('Abyssinian_1.jpg')
'cat'

7

result = [f(l) for l in fname]
result[:10]
['cat', 'cat', 'cat', 'cat', 'cat', 'cat', 'cat', 'cat', 'cat', 'cat']

8

sum([c == 'cat' for c in result])
2403
sum([d == 'dog' for d in result])
4990

9

sum(['pomeranian'  in s for s in fname])
200

lesson 4

Quiz

1

dct = {'a':0, 'b':1} 
lst = [1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1]
dct.items()
dict_items([('a', 0), ('b', 1)])
[k for l in lst for k,v in dct.items() if v==l]
['b', 'a', 'b', 'a', 'b', 'a', 'b', 'b', 'b', 'b', 'a', 'a', 'b', 'a', 'b']

2

dct = {'겨울방학':[1,2], '1학기':[3,4,5,6], '여름방학':[7,8], '2학기':[9,10,11,12]}
dct
{'겨울방학': [1, 2], '1학기': [3, 4, 5, 6], '여름방학': [7, 8], '2학기': [9, 10, 11, 12]}
month = [1,2,2,3,4,5,6,7,8,9,9,10,11,12] 
[x for l in month for x,y in dct.items() if l in y]
['겨울방학',
 '겨울방학',
 '겨울방학',
 '1학기',
 '1학기',
 '1학기',
 '1학기',
 '여름방학',
 '여름방학',
 '2학기',
 '2학기',
 '2학기',
 '2학기',
 '2학기']

3

dct1 = {'바나나':0, '사과':1, '오토바이':2, '자동차':3, '자전거':4} 
dct2 = {'과일':['바나나','사과'], '탈것':['오토바이','자동차','자전거']} 
def f(i):
    return [k for l in i for k,v in dct1.items() if v == 1]
f([0,1,0,1,4])
['사과', '사과', '사과', '사과', '사과']

4

def g(i):
    return [k for l in i for k,v in dct2.items() if l in v]
g(['바나나','바나나','바나나','자동차'])
['과일', '과일', '과일', '탈것']

5

g(f([0,1,0,1,3,4,2,2,3,4,1,0]))
['과일', '과일', '과일', '과일', '과일', '과일', '과일', '과일', '과일', '과일', '과일', '과일']

6

import requests
url = 'https://raw.githubusercontent.com/guebin/PP2023/main/posts/01_PythonBasic/Oxford-IIIT.txt'
txt = requests.get(url).content.decode()
lst = [''.join(filename.split('_')[:-1]) for filename in txt.split('\n')]
lst[:10],lst[810:820]
(['Abyssinian',
  'Abyssinian',
  'Abyssinian',
  'Abyssinian',
  'Abyssinian',
  'Abyssinian',
  'Abyssinian',
  'Abyssinian',
  'Abyssinian',
  'Abyssinian'],
 ['BritishShorthair',
  'BritishShorthair',
  'BritishShorthair',
  'BritishShorthair',
  'BritishShorthair',
  'BritishShorthair',
  'BritishShorthair',
  'BritishShorthair',
  'BritishShorthair',
  'BritishShorthair'])

7

[s[0].isupper() for s in set(lst)].count(True) # 고양이 12
12
[s[0].isupper() for s in set(lst)].count(False) 
25

8

dct = {'cat': [s for s in set(lst) if s[0].isupper()], 'dog': [s for s in set(lst) if not s[0].isupper()]}
lst2 = [k for l in lst for k, v in dct.items() if l in v]
lst2[:10], lst2[-10:] # 바뀐 lst
(['cat', 'cat', 'cat', 'cat', 'cat', 'cat', 'cat', 'cat', 'cat', 'cat'],
 ['dog', 'dog', 'dog', 'dog', 'dog', 'dog', 'dog', 'dog', 'dog', 'dog'])

9

{k:lst2.count(k) for k in ['dog','cat']}
{'dog': 4990, 'cat': 2403}

10

{k:lst.count(k) for k in set(lst)}
{'Ragdoll': 200,
 'Birman': 200,
 'americanpitbullterrier': 200,
 'boxer': 200,
 'RussianBlue': 200,
 'japanesechin': 200,
 'Bengal': 200,
 'beagle': 200,
 'havanese': 200,
 'yorkshireterrier': 200,
 'miniaturepinscher': 200,
 'newfoundland': 200,
 'bassethound': 200,
 'wheatenterrier': 200,
 'EgyptianMau': 200,
 'Abyssinian': 203,
 'pomeranian': 200,
 'englishsetter': 200,
 'Persian': 200,
 'Sphynx': 200,
 'leonberger': 200,
 'Siamese': 200,
 'MaineCoon': 200,
 'BritishShorthair': 200,
 'shibainu': 200,
 'americanbulldog': 200,
 'germanshorthaired': 200,
 'keeshond': 200,
 'samoyed': 200,
 'pug': 200,
 'Bombay': 200,
 'staffordshirebullterrier': 191,
 'englishcockerspaniel': 200,
 'greatpyrenees': 200,
 'scottishterrier': 199,
 'chihuahua': 200,
 'saintbernard': 200}

lesson 5

np.eye(3)
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])
(np.array([i==j for i in range(3) for j in range(3)])*1.0).reshape(3,3)
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])
(np.array([abs(i-j)<2 for i in range(5) for j in range(5)])*1.0).reshape(5,5)
array([[1., 1., 0., 0., 0.],
       [1., 1., 1., 0., 0.],
       [0., 1., 1., 1., 0.],
       [0., 0., 1., 1., 1.],
       [0., 0., 0., 1., 1.]])
  • 이동평균 구할 때 많이 쓰이는 matrix

Quiz

1

a= np.array(0)
a.shape
()

2

a=[1,3,2,5,-3,3,8,2,3,1]
np.array(a)+1
array([ 2,  4,  3,  6, -2,  4,  9,  3,  4,  2])

3

np.arange(100)[::3]
array([ 0,  3,  6,  9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48,
       51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99])

4

np.eye(5)
array([[1., 0., 0., 0., 0.],
       [0., 1., 0., 0., 0.],
       [0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 0., 0., 0., 1.]])

5

a = np.array([[1,0],[0,3]])
np.linalg.inv(a)
array([[1.        , 0.        ],
       [0.        , 0.33333333]])

6

np.random.seed(19931217)
a= np.random.randn(1000)

7

sum(a>1.96) + sum(a<-1.96)
59

8

a=np.arange(12).reshape(3,4)
a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
a[:,[0]]
array([[0],
       [4],
       [8]])

9

np.random.seed(43052)
a=np.random.randint(low=20,high=25,size=(10,10))
a
array([[23, 24, 23, 21, 23, 21, 23, 24, 23, 23],
       [24, 22, 23, 21, 20, 21, 21, 21, 24, 20],
       [24, 20, 24, 21, 20, 23, 24, 20, 23, 21],
       [23, 24, 20, 23, 22, 23, 21, 21, 21, 22],
       [22, 24, 24, 22, 21, 24, 20, 22, 21, 23],
       [20, 23, 23, 21, 23, 20, 21, 22, 24, 20],
       [20, 20, 20, 24, 23, 22, 20, 22, 24, 20],
       [21, 24, 23, 22, 24, 21, 23, 22, 23, 22],
       [22, 21, 24, 24, 24, 21, 22, 22, 22, 23],
       [23, 20, 23, 23, 22, 20, 21, 22, 22, 23]])
(a==20).sum(), (a==21).sum(), (a==22).sum()
(17, 20, 19)

10

lst = [[i==j for i in range(5)] for j in range(5)]
lst
[[True, False, False, False, False],
 [False, True, False, False, False],
 [False, False, True, False, False],
 [False, False, False, True, False],
 [False, False, False, False, True]]
np.array([[i==j for i in range(5)] for j in range(5)])*1.0
array([[1., 0., 0., 0., 0.],
       [0., 1., 0., 0., 0.],
       [0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 0., 0., 0., 1.]])

12

np.array([[i+j for i in range(5)] for j in range(5)] )
array([[0, 1, 2, 3, 4],
       [1, 2, 3, 4, 5],
       [2, 3, 4, 5, 6],
       [3, 4, 5, 6, 7],
       [4, 5, 6, 7, 8]])

13

np.array([[abs(i-j)<2 for i in range(10)] for j in range(10)])*1
array([[1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
       [1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
       [0, 1, 1, 1, 0, 0, 0, 0, 0, 0],
       [0, 0, 1, 1, 1, 0, 0, 0, 0, 0],
       [0, 0, 0, 1, 1, 1, 0, 0, 0, 0],
       [0, 0, 0, 0, 1, 1, 1, 0, 0, 0],
       [0, 0, 0, 0, 0, 1, 1, 1, 0, 0],
       [0, 0, 0, 0, 0, 0, 1, 1, 1, 0],
       [0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
       [0, 0, 0, 0, 0, 0, 0, 0, 1, 1]])

14

np.random.rand(100)<0.45
array([False, False, False, False,  True, False, False,  True, False,
        True, False,  True, False, False, False, False,  True,  True,
        True, False, False, False, False, False,  True,  True,  True,
        True, False, False,  True,  True, False,  True,  True,  True,
       False, False, False, False,  True, False, False, False, False,
        True,  True, False, False, False,  True,  True, False,  True,
       False, False,  True,  True, False,  True, False, False, False,
       False, False,  True, False, False,  True, False, False, False,
        True, False, False,  True,  True,  True, False, False,  True,
        True, False, False,  True,  True,  True,  True,  True,  True,
       False, False, False,  True, False, False,  True,  True, False,
       False])

lesson 6

lesson

a=np.array([1,2]) 
b=-a
a.shape
(2,)
b.shape
(2,)
c = np.concatenate([a,b])
c
array([ 1,  2, -1, -2])
c.shape
(4,)

Quiz

1~6

a=np.array([1]*10)
b=np.array([2]*10)
a
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
b
array([2, 2, 2, 2, 2, 2, 2, 2, 2, 2])

1

np.concatenate([a,b],axis=0)
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])

2

a=np.array([1]*10)
b=np.array([2]*10)
a.reshape(10,1)
array([[1],
       [1],
       [1],
       [1],
       [1],
       [1],
       [1],
       [1],
       [1],
       [1]])
np.concatenate([a.reshape(10,1),b.reshape(10,1)],axis=0)
array([[1],
       [1],
       [1],
       [1],
       [1],
       [1],
       [1],
       [1],
       [1],
       [1],
       [2],
       [2],
       [2],
       [2],
       [2],
       [2],
       [2],
       [2],
       [2],
       [2]])

3

a=np.array([1]*10)
b=np.array([2]*10)
np.concatenate([a.reshape(1,10),b.reshape(1,10)],axis=0)
array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]])

4

np.concatenate([a.reshape(10,1),b.reshape(10,1)],axis=1)
array([[1, 2],
       [1, 2],
       [1, 2],
       [1, 2],
       [1, 2],
       [1, 2],
       [1, 2],
       [1, 2],
       [1, 2],
       [1, 2]])

5

a.shape
(10,)
b.shape
(10,)
np.stack([a,b]).shape
(2, 10)
np.stack([a,b])
array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]])

6

np.stack([a,b],axis=1)
array([[1, 2],
       [1, 2],
       [1, 2],
       [1, 2],
       [1, 2],
       [1, 2],
       [1, 2],
       [1, 2],
       [1, 2],
       [1, 2]])

7~8

np.random.seed(43052)
a=np.random.randn(10000).reshape(100,100)
a
array([[ 0.38342049,  1.0841745 ,  1.14277825, ..., -0.18506968,
         1.05538764,  1.18701443],
       [-0.25027283, -1.58045215,  0.1124153 , ...,  1.0321894 ,
         0.40438012, -0.13491595],
       [-0.76763724, -0.64294232, -0.24782396, ..., -0.01530161,
         0.89125897, -0.82683395],
       ...,
       [-1.41379028,  0.79611333, -0.71011837, ..., -0.9860352 ,
         1.30755244,  2.18677233],
       [ 1.33968105, -0.78457449, -0.10405858, ..., -0.71110186,
         0.99841286,  2.34371635],
       [-0.66422032, -0.07550233,  0.7405869 , ...,  1.03232398,
        -0.18988252, -0.03578389]])
a.sum(axis=1)
array([-8.13607922e+00,  9.87120533e+00, -1.41434956e+01, -2.21705363e+00,
       -1.45535236e+01, -9.15821678e+00, -2.59866360e+00, -1.54562385e+01,
       -1.42005088e+00, -3.51523111e+00,  9.70487578e+00, -1.26229105e+01,
        1.66837113e+00,  2.43015457e+00,  2.72990184e+00, -7.99486429e+00,
       -8.38305954e-01, -8.45002020e+00, -1.03610098e+00,  2.07251861e+01,
        1.11461478e+01,  7.62144075e+00, -7.93734585e+00,  1.82844319e+01,
       -2.63562392e+00, -8.97916930e+00, -1.88986183e+00, -9.32477049e+00,
       -6.69074565e+00, -1.42463143e+01,  6.45540510e-01,  1.80911488e+00,
        2.40997157e+00,  1.63367254e+01,  7.63990677e+00,  8.13524813e+00,
        3.97159000e+00, -1.10542949e+00,  4.37564512e-01,  2.87299971e+00,
       -4.01016768e+00,  5.71115215e+00, -4.64132698e+00, -9.13987753e+00,
       -6.78326000e+00,  3.36308150e+00, -5.13704342e+00, -5.09782466e+00,
        6.54192465e-03,  7.19722660e+00, -4.64674820e+00, -9.24124039e+00,
        6.73530841e+00,  1.12168921e+00,  1.61615988e+00,  1.37602200e+01,
        6.67289840e-01, -2.09578108e+00, -2.81826564e-01, -8.52416541e+00,
       -7.21970047e+00,  2.27146777e+01, -1.40341974e+01,  1.69263136e+01,
       -1.80568372e+01,  6.52142336e+00, -1.73092812e+01, -1.34999285e+01,
       -7.85539317e+00, -4.74940393e-01, -2.75765037e+01,  8.74991555e+00,
       -9.77324158e+00,  1.42854121e+01, -1.10130356e+00, -1.39206483e-01,
       -1.54638921e+01,  1.36814794e+00,  8.41394160e+00, -2.42153833e+00,
       -2.57155344e+01, -6.72423820e+00, -9.49366257e-01,  3.79493472e+00,
       -6.23508582e+00,  7.75657189e+00,  9.69403620e+00,  1.46847519e+01,
        7.36500792e+00, -2.54755192e+01,  1.22792449e+01, -1.02497847e+01,
        1.30452028e+01,  3.92943038e+00, -3.27227585e+00, -1.06633071e+01,
       -1.56942302e+01,  8.01451222e+00,  2.81546938e+00,  5.56774384e+00])

8

a.mean(axis=0)
array([ 5.05543481e-03, -8.11250975e-03, -7.27142023e-03,  9.64876493e-02,
        5.64186324e-02, -2.22728206e-02,  1.32808256e-04, -9.60905067e-02,
        9.42144096e-02, -1.21946518e-01, -2.21878576e-02, -3.77018716e-02,
        2.35739166e-03, -1.13202128e-01, -9.00374437e-02, -3.09372275e-02,
       -2.18029121e-02,  7.04210003e-02, -4.12563112e-02,  2.58233488e-02,
        1.16578817e-01, -1.59430241e-01, -1.53668953e-02,  9.21879710e-02,
       -1.11346500e-01, -1.20131585e-01,  5.94139652e-02, -3.27022797e-02,
       -1.46466366e-02, -1.78386785e-02, -1.06650333e-01, -9.04542721e-02,
       -8.52586244e-02,  5.52166280e-02,  1.94115122e-01,  4.64389603e-02,
        5.13636914e-02,  1.11424801e-01, -4.18629084e-02,  9.23822150e-02,
       -2.00433998e-02, -5.73784795e-02, -8.79928414e-02, -3.01766235e-02,
        6.47256326e-02,  3.14419234e-02, -1.16146865e-01, -1.04800787e-01,
        3.17924308e-02,  5.51687322e-02,  1.04913214e-01, -2.79741703e-03,
        2.56767141e-01, -1.35620430e-01, -9.59492302e-02,  1.23241275e-01,
       -5.26436946e-03, -3.14823093e-02, -4.00286104e-02, -1.48618576e-01,
        4.85988487e-02, -1.37972086e-01, -1.04715966e-01, -7.13893940e-02,
        4.35483376e-02, -2.10610822e-01, -1.03231108e-01, -1.62132451e-01,
        2.85187037e-01, -8.25697744e-02,  4.33723229e-02,  1.32763889e-02,
       -1.61919484e-01, -5.07924036e-02,  6.62243327e-02, -9.72863991e-02,
        2.71962223e-01, -5.97710822e-02,  1.54580795e-01, -5.46739064e-02,
       -1.08611574e-01, -1.56520706e-01, -1.40476317e-01,  1.06067589e-01,
       -3.46141736e-02, -6.07673046e-02,  5.33471760e-03,  8.10276105e-02,
       -1.31994569e-01, -1.00936968e-02,  6.13944222e-02, -9.72765699e-02,
        1.61342793e-01,  1.02634369e-01, -5.03038014e-02, -7.50604837e-02,
        2.63992605e-02,  6.98470602e-02, -1.89567885e-01,  7.91910813e-02])